package 爬虫;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class 本地爬虫 {
    public static void main(String[] args) {
        /* 有如下文本，请按照要求爬取数据。
                Java自从95年问世以来，经历了很多版本，目前企业中用的最多的是Java8和Java11，
                因为这两个是长期支持版本，下一个长期支持版本是Java17，相信在未来不久Java17也会逐渐登上历史舞台
                要求:找出里面所有的JavaXX
         */
        //Pattern:表示正则表达式
        //Matcher:文本怕匹配器,作用是按照正则表达式的规则去读取字符串,从头开始读取.
        //         在大串中寻找符合规则的子串.

        //methold1();
        String str="Java自从95年问世以来，经历了很多版本，目前企业中用的最多的是Java8和Java11，\n" +
                "因为这两个是长期支持版本，下一个长期支持版本是Java17，相信在未来不久Java17也会逐渐登上历史舞台";

        // 1.获取正则化表达式对象
        Pattern p=Pattern.compile("Java\\d{0,2}");
        // 2.文本匹配器的对象
        Matcher m=p.matcher(str);
        //3.利用循环获取
        while ( m.find()){
            String s1 = m.group();
            System.out.println(s1);

        }


    }

    private static void methold1() {
        //获取正则化表达式的对象
        String str="Java自从95年问世以来，经历了很多版本，目前企业中用的最多的是Java8和Java11，\n" +
                "因为这两个是长期支持版本，下一个长期支持版本是Java17，相信在未来不久Java17也会逐渐登上历史舞台";
        Pattern p = Pattern.compile("Java\\d{0,2}");
        //获取文本匹配对象
        Matcher m = p.matcher(str);

        //拿着文本匹配器从头开始读取,寻找是否有满足规则的子串.有ture. 没有false
        //在底层会记录起始索引和结束索引＋1.
        boolean b = m.find();

        //方法底层会根据find方法记录的索引进行字符的截取
        //subString(起始索引,结束索引);包头不包尾
        String s1 = m.group();
        System.out.println(s1);//Java

        //第二次调用find的时候会继续读取后面的内容
        //读取到第二个满足要求的子串的起始索引和结束索引+1,进行记录
        b = m.find();
        String s2=m.group();
        System.out.println(s2);//Java8
    }
}
